/*
 * Copyright (c) 2024 -present FengJinjian ( 751965763@qq.com )
 * [... 标准 Apache License 头 ...]
 */
package edu.vital.energy.longevity.service;

import edu.vital.energy.longevity.domain.dto.contract.ContractCreateDTO;
import edu.vital.energy.longevity.domain.dto.contract.ContractQueryDTO;
import edu.vital.energy.longevity.domain.dto.contract.ContractUpdateDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * ContractService - 合同服务接口
 *
 * @version 1.0.1
 * @author FengJinJian
 * @date 2025/01/10 10:00
 */
public interface ContractService {
    /**
     * 分页查询合同列表
     */
    Map<String, Object> getContractPage(Integer pageNum, Integer pageSize, ContractQueryDTO query);
    
    Object getContractById(Long id);
    
    /**
     * 创建合同
     * @return 新创建的合同ID
     */
    Long createContract(ContractCreateDTO dto);
    
    /**
     * 更新合同
     * @return 更新的记录数
     */
    int updateContract(Long id, ContractUpdateDTO dto);
    
    /**
     * 删除合同
     * @return 删除的记录数
     */
    int deleteContract(Long id);
    
    /**
     * 批量删除合同
     * @return 删除的记录数
     */
    int batchDeleteContract(List<Long> ids);
    
    byte[] exportContract(ContractQueryDTO query);
    
    void importContract(MultipartFile file);
    
    void updateContractStatus(Long id, Integer status);
} 